package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.AtributosDAO;
import com.cs.beneficios.business.model.ValorFlexibleVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.beneficios.common.entity.Consultas;
import com.cs.beneficios.common.util.Atributo;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;

public class PropiedadesAtriAction extends Action
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	ConnectionFactory cf = new ConnectionFactory();
    Consultas objCons = new Consultas(cf);
    HttpSession session = request.getSession();
    try{
        String codatri = request.getParameter("codatributo");
        if((Object)codatri == null || codatri.equals("null"))
          codatri = (String)session.getAttribute("codatri");
        String accion = request.getParameter("accion");
        request.setAttribute("Accion",accion);
        String codigo = request.getParameter("codigo");
        request.setAttribute("Codigo",codigo);
        
        List lAtriSub = new LinkedList();
        
        int opcion = 2;
        lAtriSub = objCons.getAtributoEspecificos(codatri, opcion);
        Atributo objatri = (Atributo)lAtriSub.get(0);
       
        session.setAttribute("subprograma",session.getAttribute("codsubpro"));
        
        session.setAttribute("tipoatributo",objatri.getTipoatributo());
        session.setAttribute("vallista",objatri.getValLista());
        session.setAttribute("obligatorio",objatri.getObligatorio());
        session.setAttribute("vigencia",objatri.getVigencia());
        session.setAttribute("tipodato",objatri.getTipodato());
        session.setAttribute("tipovalorflex",objatri.getTipovalorflex());
        String CodTvfl = (String)objatri.getTipovalorflex();
        
        if (!CodTvfl.equals(""))
          session.setAttribute("valorsugerido",objatri.getValorsugerido());
        else
          session.setAttribute("valorsugerido",null);
        
        
        if (!CodTvfl.equals(""))
        {
           String ValorSugerido = (String)objatri.getValorsugerido();
         //proceso para obtener los valores flexibles para un sumprograma determinado
         
           Collection ValorFlexible = objCons.getDominio(CodTvfl);
           Collection ListaTamano = new ArrayList();
           List lista = (List)ValorFlexible;
           if(lista.size() > 0){
             ValorFlexibleVO objvfl = (ValorFlexibleVO)lista.get(0);
             ListaTamano.add(objvfl);
           }
           session.setAttribute("listatam",ListaTamano);
           session.setAttribute("valorflex",ValorFlexible);
         //fin del procesp  
        }else
        {
          AtributosDAO objAtriDAO = new AtributosDAO(cf);
          int actualizar = objAtriDAO.ActuVallista(codatri);
          cf.closeConnection(objAtriDAO.getConn());
        }
       
        cf.closeConnection(objCons.getConn());
        request.setAttribute("mostraratri",lAtriSub);
    }catch(SQLException e)
    {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
    }finally
    {
      try{
        cf.closeConnection(objCons.getConn());
      }catch(SQLException e)
      {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSSPE - cwsub ********/");
      }
    }
    
    return mapping.findForward("success");
  }
}